home *** CD-ROM | disk | FTP | other *** search
- Subject: v18i086: Elm mail system, release 2.2, Part07/24
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: dsinc!syd@uunet.UU.NET (Syd Weinstein)
- Posting-number: Volume 18, Issue 86
- Archive-name: elm2.2/part07
-
- #!/bin/sh
- # this is part 7 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file doc/elmrc-info continued
- #
- CurArch=7
- if test ! -r s2_seq_.tmp
- then echo "Please unpack part 1 first!"
- exit 1; fi
- ( read Scheck
- if test "$Scheck" != $CurArch
- then echo "Please unpack part $Scheck next!"
- exit 1;
- else exit 0; fi
- ) < s2_seq_.tmp || exit 1
- echo "x - Continuing file doc/elmrc-info"
- sed 's/^X//' << 'SHAR_EOF' >> doc/elmrc-info
- X
- Xaskcc
- X# would you like to be asked for Carbon-Copies information each msg?
- X
- SHAR_EOF
- echo "File doc/elmrc-info is complete"
- chmod 0444 doc/elmrc-info || echo "restore of doc/elmrc-info fails"
- echo "x - extracting doc/elmrc.samp (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/elmrc.samp &&
- X#@(#)$Id: elmrc.samp,v 2.8 89/03/31 09:38:57 syd Exp $
- X#
- X# .elm/elmrc - options file for the ELM mail system
- X#
- X# Saved automatically by ELM 2.2 for Dave Taylor
- X#
- X
- X# For yes/no settings with ?, ON means yes, OFF means no
- X
- X# where to save calendar entries
- Xcalendar = ~/.Agenda
- X
- X# what editor to use ("none" means simulate Berkeley Mail)
- Xeditor = none
- X
- X# the character to use in the builtin editor for entering commands
- Xescape = ~
- X
- X# the full user name for outbound mail
- Xfullname = Dave Taylor
- X
- X# where to save received messages to, default file is "=received"
- Xreceivedmail = $HOME/Mail/received
- X
- X# where to save my mail to, default directory is "Mail"
- Xmaildir = /users/taylor/Mail
- X
- X# program to use for displaying messages ('builtin' is recommended)
- Xpager = builtin
- X
- X# prefix sequence for indenting included message text in outgoing messages...
- Xprefix = >_
- X
- X# how to print a message ('%s' is the filename)
- Xprint = lpr -Plw2 %s
- X
- X# where to save copies of outgoing mail to, default file is "=sent"
- Xsentmail = /users/taylor/Mail/mail.sent
- X
- X# the shell to use for shell escapes
- Xshell = /bin/csh
- X
- X# local ".signature" file to append to appropriate messages...
- Xlocalsignature = localsig
- X
- X# remote ".signature" file to append to appropriate messages...
- Xremotesignature = remotesig
- X
- X# how to sort folders, "Mailbox" by default
- Xsortby = Reverse-Received
- X
- X# should the default be to delete messages we've marked for deletion?
- Xalwaysdelete = ON
- X
- X# should the default be to store read messages to the "received" folder?
- Xalwaysstore = ON
- X
- X# should the default be to keep unread messages in the incoming mailbox?
- Xalwayskeep = ON
- X
- X# should we use the "->" rather than the inverse video bar?
- Xarrow = OFF
- X
- X# should the message disposition questions be displayed(ON) or
- X# auto-answered(OFF) with the default answers when we resync or change folders?
- Xask = ON
- X
- X# would you like to be asked for Carbon-Copies information each msg?
- Xaskcc = ON
- X
- X# automatically copy message being replied to into buffer?
- Xautocopy = OFF
- X
- X# threshold for bouncing copies of remote uucp messages...
- X# zero = disable function.
- Xbounceback = 0
- X
- X# save a copy of all outbound messages?
- Xcopy = ON
- X
- X# do we want to be able to mail out AT&T Mail Forms?
- Xforms = OFF
- X
- X# should we keep folders from which all messages are deleted?
- Xkeepempty = OFF
- X
- X# we're running on an HP terminal and want HOME, PREV, NEXT, etc...
- Xkeypad = OFF
- X
- X# should we display the three-line 'mini' menu?
- Xmenu = ON
- X
- X# when using the page commands (+ - <NEXT> <PREV>) change the current
- X# message pointer...?
- Xmovepage = ON
- X
- X# just show the names when expanding aliases?
- Xnames = ON
- X
- X# when messages are copied into the outbound buffer, don't include headers?
- Xnoheader = ON
- X
- X# start up by pointing to the first new message received, if possible?
- Xpointnew = ON
- X
- X# prompt for a command after the external pager exits?
- Xpromptafter = ON
- X
- X# emulate the mailx message increment mode (only increment after something
- X# has been 'done' to a message, either saved or deleted, as opposed to
- X# simply each time something is touched)?
- Xresolve = ON
- X
- X# save messages, incoming and outbound, by login name of sender/recipient?
- Xsavename = ON
- X
- X# are we running on an HP terminal and want HOME, PREV, NEXT, etc...?
- X# (this implies "keypad=ON" too)
- Xsoftkeys = OFF
- X
- X# set the main prompt timeout for resynching...
- Xtimeout = 60
- X
- X# display message title when displaying pages of message?
- Xtitles = ON
- X
- X# are we good at it? 0=beginner, 1=intermediate, 2+ = expert!
- Xuserlevel = 2
- X
- X# tell us about addresses to machines we can't directly get to?
- Xwarnings = OFF
- X
- X# enable the weedout list to be read?
- Xweed = ON
- X
- X# what headers I DON'T want to see, ever.
- Xweedout = "Path:" "Via:" "Sent:" "Date" "Status:" "Original" "Phase"
- X "Subject:" "Fruit" "Sun" "Lat" "Buzzword" "Return" "Posted"
- X "Telephone" "Postal-Address" "Origin" "X-Sent-By-Nmail-V" "Resent"
- X "X-Location" "Source" "Mood" "Neuron" "Libido" "To:" "X-Mailer:"
- X "Full-Name:" "X-HPMAIL" "Cc:" "cc:" "Mmdf" "Network-" "Really-"
- X "Sender:" "Post" "Message-" "Relay-" "Article-" "Lines:"
- X "Approved:" "Xref:" "Organization:" "*end-of-user-headers*"
- X
- X# alternative addresses that I could receive mail from (usually a
- X# forwarding mailbox) and don't want to have listed...
- Xalternatives = hplabs!taylor hpldat!taylor taylor@hplabs taylor%hpldat
- X
- SHAR_EOF
- chmod 0444 doc/elmrc.samp || echo "restore of doc/elmrc.samp fails"
- echo "x - extracting doc/fastmail.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/fastmail.1 &&
- X.TH FASTMAIL 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xfastmail - quick batch mail interface to a single address
- X.SH SYNOPSIS
- X.B fastmail
- X[-b bcc-list] [-c cc-list] [-d] [-f fromname] [-r replyto]
- X[-s subject] filename address-list
- X.br
- X.SH DESCRIPTION
- X.I Fastmail
- Xis a low-level interface to the mail system that allows batch
- Xprocessing of mail. It's intended for mailing to very large
- Xgroups of people in a staggered fashion.
- X.PP
- XThe starting options are;
- X.TP 1.0i
- X.B "-b bcc-list"
- XThis allows a list of people to receive blind-carbon copies, or BCCs, of
- Xthe message. This list should be full email addresses.
- X.TP
- X.B "-c cc-list"
- XThis allows a list of people to receive carbon copies, or CCs, of
- Xthe message. This list should be full email addresses.
- X.TP
- X.B "-d"
- XDebug. This is helpful for strange, unfriendly errors from
- Xthe program (etc).
- X.TP
- X.B "-f from"
- XThis overrides the users name in the From: line, so that if
- Xthe user was x@y, and their name was MrX then the default
- XFrom: line would be "From: x@y (MrX)". Using "-f Joe" when
- Xinvoking this, though, would change it to "From: x@y (Joe)"
- X.TP
- X.B "-r replyto"
- XOccasionally, you might send mail but want the replies to go
- Xto a different address (very common with mailing lists).
- XThere is a header for this purpose called "Reply-To:" which
- Xcan be utilized by using this starting option. For example,
- Xwe could send mail with a reply-to to list-request by
- Xusing "-r list-request". The header generated would then
- Xbe of the form "Reply-To: list-request".
- X.TP
- X.B "-s subject"
- XThe subject of the message is specified by using
- Xthis starting option.
- X.SH EXAMPLE
- XLet's say we're user "big" on machine "big-vax" and we have a
- Xshell script called 'batch-mail' that contains the following
- Xlines:
- X.nf
- X
- X #
- X # Batch Mail - batch mailing of a file to a LOT of users
- X #
- X # Usage: batch-mail "from" "subject" filename
- X
- X sender_copy = $LOGIN
- X replto = "The-Mr-Big-list"
- X
- X fastmail -b $sender_copy -r $replyto -f "$1" -s "$2" $3 person1
- X sleep 10
- X fastmail -r $replyto -f "$1" -s "$2" $3 person2
- X sleep 10
- X fastmail -r $replyto -f "$1" -s "$2" $3 person3
- X sleep 10
- X fastmail -r $replyto -f "$1" -s "$2" $3 person4
- X
- X < etc >
- X
- Xwith the invocation:
- X
- X batch-mail "Mr. Big" "Warning to all" warning.text
- X
- X.fi
- Xwould mail a copy of the 'warning.text' file to person1, person2,
- Xperson3, etc. "$LOGIN" will also receive a copy of the first message
- Xin the mail, \fIsilently\fR. Each resultant message will include the headers:
- X.nf
- X
- X From: big-vax!big (Mr. Big)
- X Subject: Warning to all
- X Reply-To: The-Mr-Big-list
- X
- X.fi
- XThis program should turn out to be considerably
- Xfaster than the alternative methods of accomplishing this task.
- X.SH FILES
- X/usr/lib/sendmail sendmail transport if available
- X.br
- X/bin/rmail transport if no sendmail
- X.br
- X/tmp/fastmail.$$ temporary file
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories
- X.SH SEE\ ALSO
- Xsendmail(1), rmail(1), elm(1L)
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/fastmail.1 || echo "restore of doc/fastmail.1 fails"
- echo "x - extracting doc/filter.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/filter.1 &&
- X.TH FILTER 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xfilter - filter incoming messages before adding to mailbox
- X.SH SYNOPSIS
- X.B filter
- X[-v] [-o output]
- X.br
- X.B filter
- X[-n]
- X.br
- X.B filter
- X[-r] [-o output]
- X.br
- X.B filter
- X[-c] [-s] [-o output]
- X.br
- X.B filter
- X[-c] [-S] [-o output]
- X.SH DESCRIPTION
- X.I Filter
- Xis a sophisticated program that allows incoming mail to be
- Xfiltered against a wide set of criteria. The format for the
- Xrules, located in $HOME/.filter_rules, is;
- X.nf
- X
- X \fIrule\fR ::= \fBif (\fIexpression\fP) then \fIaction\fR
- X
- X.fi
- Xwhere \fIexpression\fR is:
- X.nf
- X
- X \fIexpression\fR ::= { \fBnot\fR } \fIcondition\fR \fIexpr2\fR
- X
- X \fIexpr2\fR ::= \fINULL\fR | \fBand\fI condition expr2
- X
- X \fIcondition\fR ::= \fIfield relationship value\fR
- X ::= \fBlines\fI relop numvalue\fR
- Xor ::= \fBalways\fR
- X
- X.fi
- XThese further break down as:
- X.nf
- X
- X \fIfield\fR ::= \fBfrom\fR | \fBsubject\fR | \fBto\fR | \fBlines\fR
- X
- X \fIrelationship\fR ::= \fB=\fR | \fB!=\fR
- X
- X \fIrelop\fR ::= \fB=\fR | \fB!=\fR | \fB<\fR | \fB>\fR | \fB<=\fR | \fB>=\fR
- X
- X \fIvalue\fR ::= \fIany quoted string\fR
- X
- X \fInumvalue\fR ::= \fIany integer value\fR
- X
- X.fi
- X\fIAction\fR can be any of:
- X.nf
- X
- X \fBdelete\fR
- X \fBsave \fIfoldername\fR
- X \fBsavecopy \fIfoldername\fR
- X \fBexecute \fIcommand\fR
- X \fBforward \fIaddress\fR
- X \fBleave\fR
- X
- X.fi
- XFor further information about the rules language, please see
- X\fIThe Elm Filter Guide\fR.
- X.sp
- XThe flags the \fIfilter\fR program understands are;
- X.TP 1.0i
- X.B "-c"
- XClear logs. If this flag is used, the log files will be removed after
- Xbeing summarized by either "-s" or "-S" (see below).
- X.TP
- X.B "-n"
- XNot really. Output what would happen if given message from standard
- Xinput, but don't actually do anything with it.
- X.TP
- X\fB-o \fIfile\fR
- XRedirect all log messages to the specified file or device. (This is
- Xadded to more gracefully deal with changes in the file system (since
- Xsendmail is quite picky about modes of files being redirected into.))
- X.TP
- X.B "-r"
- XRules. List the rules currently being used.
- X.TP
- X.B "-s"
- XSummarize. List a summary of the message filtered log.
- X.TP
- X.B "-S"
- XThis is the same as `-s' but includes message-by-message
- Xinformation additionally.
- X.TP
- X.B "-v"
- XVerbose. Give output on standard out for each message filtered. Useful
- Xto have redirected to ``/dev/console'' and such. (see \fB-a\fR too).
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories.
- X.SH FILES
- X$HOME/.filter-rules The ruleset for the users filter
- X.br
- X$HOME/.filterlog A log of what has been done
- X.br
- X$HOME/.filtersum A summary of what has been done
- X.br
- X/etc/passwd Used to get users home directory
- X.SH SEE\ ALSO
- X\fIThe Elm Filter Guide\fR, by Dave Taylor.
- X.br
- Xreadmsg(1L), elm(1L), mail(1), mailx(1), sendmail(1,8)
- X.SH COMMENTS
- XNot real smart about pattern matching.
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/filter.1 || echo "restore of doc/filter.1 fails"
- echo "x - extracting doc/frm.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/frm.1 &&
- X.TH FRM 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xfrm - list from and subject of all messages in mailbox or file
- X.SH SYNOPSIS
- X.B frm
- X[-n]
- X[ folder ]
- X.br
- X.B frm
- X[-n]
- X[ username ]
- X.SH DESCRIPTION
- X.I Frm
- Xoutputs a line per message in the current users mailbox
- Xof the form;
- X.PP
- X<from> [subject]
- X.PP
- XIf a folder is specified, the program reads that folder
- Xrather than the default mailbox. If the argument is a
- X\fIusername\fR then look for that user's mailbox.
- X.PP
- XFurthermore, if the \fI-n\fR flag is specified, the headers
- Xwill be numbered using the same numbering scheme that, for
- Xexample, \fIreadmsg\fR will understand.
- X.PP
- XFolder can be specified with the same notation as
- Xwhen invoking the \fBElm\fR mailer.
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories.
- X.SH SEE\ ALSO
- Xreadmsg(1L), elm(1L), mail(1), mailx(1)
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/frm.1 || echo "restore of doc/frm.1 fails"
- echo "x - extracting doc/listalias.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/listalias.1 &&
- X.TH LISTALIAS 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xlistalias - list user and system aliases
- X.SH SYNOPSIS
- X.B listalias
- X[ regular-expression ]
- X.SH DESCRIPTION
- X.I Listalias
- Xoutputs a line per alias in both the user and the system
- Xaliases. Each line is of the form;
- X.nf
- X
- X <alias> <address> (<comment>)
- X
- X.fi
- XIf an optional regular expression is used, just the aliases
- Xthat match the specified expression are listed. If not,
- Xthey are all listed.
- X.sp
- XEither way, the output is sorted.
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories.
- X.SH SEE\ ALSO
- Xnewalias(1L), elm(1L), checkalias(1L)
- X.SH BUGS
- XSince the program uses a pipe to egrep, how expressions are evaluated is
- Xa function of \fIthat\fR program, not this one!
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/listalias.1 || echo "restore of doc/listalias.1 fails"
- echo "x - extracting doc/messages.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/messages.1 &&
- X.TH MESSAGES 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xmessages - quick count of messages in mailbox or folder
- X.SH SYNOPSIS
- X.B messages
- X.br
- X.B messages
- Xfolder-name
- X.SH DESCRIPTION
- X.I Messages
- Xcounts the occurances of "^From\ " in either the current incoming
- Xmailbox or the specified folder.
- X.P
- XThis is, in fact, a simple little shell script!!
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories
- X.SH SEE\ ALSO
- Xfrom(1L), elm(1L)
- X.SH BUGS
- XDon't be foolish...
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/messages.1 || echo "restore of doc/messages.1 fails"
- echo "x - extracting doc/newalias.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/newalias.1 &&
- X.TH NEWALIAS 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xnewalias - install new elm aliases for user and/or system
- X.SH SYNOPSIS
- X.B newalias
- X[-g]
- X.SH DESCRIPTION
- X.I Newalias
- Xcreates new hash and data files from a text file.
- XIf the program is invoked with the
- X.I -g
- X(global) flag, the program updates the system alias files.
- XOtherwise, the program looks for a file called \fI$HOME/.elm/aliases.text\fR
- Xand, upon finding it, creates files \fI$HOME/.elm/aliases.hash\fR and
- X\fI$HOME/.elm/aliases.data\fR for the
- X.I elm
- Xprogram.
- X.PP
- XThe format that the program expects is;
- X.sp
- X.nf
- X alias, alias, .. = comment = address
- Xor
- X alias, alias, .. = comment = alias, alias, ...
- X
- XThe first form is for an individual user such as;
- X
- X dave, taylor = Dave Taylor = veeger!hpcnou!dat
- X
- Xand the second is for defining a group alias such as;
- X
- X gurus = Unix Gurus = alan, john, dave, mike, richard,
- X larry, t_richardson
- X
- X.fi
- X.sp
- XNote that lines can be continued at will, blank lines are accepted
- Xwithout error, and that any line starting with '#' is considered a
- Xcomment and is not processed.
- X.PP
- XFinally, aliases can contain other aliases, and/or groups;
- X.sp
- X.nf
- X unix = Unix people = gurus, taylor, jonboy
- X.fi
- X' onto the next page, if you please
- X.sp 3
- X.SH FILES
- X$HOME/.elm/aliases.text alias source for user
- X.br
- X$HOME/.elm/aliases.hash alias hash table for user
- X.br
- X$HOME/.elm/aliases.data alias data file for user
- X.br
- X/usr/mail/.alias_text alias source for system
- X.br
- X/usr/mail/.alias_hash alias hash table for system
- X.br
- X/usr/mail/.alias_data alias data file for system
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories.
- X.SH SEE\ ALSO
- Xelm(1L), checkalias(1L), mail(1), mailx(1)
- X.SH DIAGNOSTICS
- XNewalias has a couple of descriptive error messages which
- Xdon't need to be detailed here. It is, however, worth
- Xnoting that the
- X.I checkalias
- Xprogram can be used to ensure that the aliases are in the
- Xproper order and are available for the
- X.I elm
- Xsystem.
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/newalias.1 || echo "restore of doc/newalias.1 fails"
- echo "x - extracting doc/newmail.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/newmail.1 &&
- X.TH NEWMAIL 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xnewmail,wnewmail - programs to asynchronously notify of new mail
- X.SH SYNOPSIS
- X.B newmail
- X.B [-d]
- X.B [-i \fIinterval\fB]
- X.B [-w]
- X\fIfile-spec\fR {\fIfile-spec\fR...}
- X.br
- X.B wnewmail
- X.B [-d]
- X.B [-i \fIinterval\fB]
- X.B [-w]
- X\fIfile-spec\fR {\fIfile-spec\fR...}
- X.PP
- X.SH DESCRIPTION
- X.I Newmail\^
- Xis a program to allow monitoring of mailboxes in an intelligent
- Xfashion. It is based loosely on \fIbiff(1)\fR and the version
- Xof \fInewmail\fR that was distributed with \fBElm 1.7\fR.
- X.P
- XThe basic operation is that the program will check the list of
- Xspecified mailboxes each \fIinterval\fR seconds and will list
- Xany new mail that has arrived in any of the mailboxes,
- Xindicating the sender name, and the subject of the message.
- X.P
- XEach entry displayed can be in a number of different formats
- Xdepending on the mode of the program, the number of folders
- Xbeing monitored, and the status of the message. If you're
- Xrunning it as a \fIwindow\fR (e.g. ``-w''
- Xor invoked as \fIwnewmail\fR) then the output will be
- Xsimilar to:
- X.nf
- X
- X \fIsender name\fR - \fIsubject of message\fR
- X Priority: \fIsender name\fR - \fIsubject of message\fR
- X
- X.fi
- Xwhere <sender name> is either the name of the person sending it,
- Xif available (the ARPA 'From:' line) or some other brief
- Xindication of origin If there
- Xis no subject, the message "<no subject>" will appear on
- Xthe screen.
- X.P
- XFolders are indicated by having the folder name appear first
- Xon the output line, as in:
- X.nf
- X
- X \fIfolder\fR: \fIsender name\fR - \fIsubject of message\fR
- X
- X.fi
- XIf you're running \fInewmail\fR without the windows option,
- Xthen the output is more suitable for popping up on an otherwise
- Xactive screen, and will be formatted:
- X.nf
- X
- X >> New mail from \fIsender name\fR - \fIsubject of message\fR
- X >> Priority mail from \fIsender name\fR - \fIsubject of message\fR
- X
- X.fi
- XAgain, with folder names indicated as a prefix.
- X.P
- XThe flags available are:
- X.TP 1.0i
- X.B "-d"
- XThis will turn on the debugging, verbose output mode. It is not
- Xrecommended that you use this option unless you're interested in
- Xactually debugging the program.
- X.TP
- X.B "-i \fIinterval\fR "
- XThis will change the frequency that the program checks the folders
- Xto the interval specified, in seconds. The default interval for
- Xthe program is 60 seconds. \fINote: if you change the interval
- Xto less than 10 seconds, the program will warn you that it isn't
- Xrecommended.\fR
- X.TP
- X.B "-w"
- XUse of the ``-w'' flag will simulate having the program run
- Xfrom within a window (e.g. the more succinct output format,
- Xand so on). Most likely, rather than using this option you
- Xshould be simply invoking \fIwnewmail\fR instead.
- X.P
- X\fIFile specs\fR are made up of two components, the
- X\fIfolder name\fR and the \fIprefix string\fR, the
- Xlatter of which can always be omitted.
- XThe format is \fIfoldername=prefixstring\fR, and
- Xyou can specify folders by full name, by simply
- Xthe name of the user whose mailbox should be
- Xmonitored, or by the standard \fBElm\fR
- Xmetacharacters to specify your folder
- Xdirectory (e.g. ``+'', ``='', or ``%'').
- X.P
- XFolders that cannot be opened due to permission mismatches
- Xwill cause the program to immediately abort. On the other
- Xhand, files that do not exist will continue to be checked
- Xevery \fIinterval\fR seconds, so some care should be
- Xexercised when invoking the program.
- X.P
- XThe program will run until you log out or explicitly kill
- Xit, and can internally reset
- Xitself if any of the folders shrink in size and
- Xthen grow again.
- X.P
- XThe default folder to monitor is always your incoming mailbox.
- X.SH EXAMPLES
- XSome example invocations:
- X.nf
- X
- X $ \fBnewmail\fR
- X
- X.fi
- Xwill check your imcoming mailbox every 60 seconds.
- X.nf
- X
- X $ \fBnewmail -i 15 joe root\fR
- X
- X.fi
- Xwill monitor the incoming mailboxes for ``joe'' and ``root'',
- Xchecking eery 15 seconds for new mail.
- X.nf
- X
- X $ \fBnewmail "mary=Mary" +postmaster=POBOX\fR
- X
- X.fi
- Xwill monitor the incoming mailbox for user ``mary'', prefixing
- Xall messages with the string ``Mary'', and the folder in
- Xthe users \fImaildir\fR directory called ``postmaster'',
- Xprefixing all of those messages with ``POBOX''.
- X.P
- XYou can also have more complex monitoring too, for example:
- X.nf
- X
- X $ \fBnewmail -i 30 $LOGNAME=me ${LOGNAME}su=myroot /tmp/mbox\fR
- X
- X.fi
- Xwill check every 30 seconds for the users mailbox, a mailbox that
- Xis the users login-name with ``su'' appended (e.g. ``joe'' would
- Xbecome ``joesu'') and the file /tmp/mbox, prefixing new mail
- Xfor each with ``me'', ``myroot'' and ``mbox'' respectively.
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories.
- X.SH SEE ALSO
- Xnotify in sh(1) or csh(1)
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/newmail.1 || echo "restore of doc/newmail.1 fails"
- echo "x - extracting doc/printmail.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/printmail.1 &&
- X.TH PRINTMAIL 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xprintmail - format mail in a readable fashion for printing
- X.SH SYNOPSIS
- X.B printmail
- X{-p}
- X{filename}
- X.SH DESCRIPTION
- X.I Printmail
- Xcopies all messages from either the file specified or the
- Xdefault user mailbox with each message separated by a line of dashes.
- XWith the
- X.B \-p
- Xoption, the messages are separated by a formfeed instead.
- X.sp
- XIn fact, this command is actually just a slightly differently
- Xformatted call to \fIreadmsg\fR:
- X.nf
- X readmsg {-p} {-f \fIfilename\fR} *
- X.fi
- Xwhich does all the work here.
- X.SH EXAMPLE
- XA typical usage of this command is;
- X.nf
- X
- X printmail | lpr
- X
- X.fi
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories.
- X.SH SEE\ ALSO
- Xreadmsg(1L)
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/printmail.1 || echo "restore of doc/printmail.1 fails"
- echo "x - extracting doc/readmsg.1 (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/readmsg.1 &&
- X.TH READMSG 1L "Elm Version 2.2" "USENET Community Trust"
- X.ad b
- X.SH NAME
- Xreadmsg - read messages from incoming mail
- X.SH SYNOPSIS
- X.B readmsg
- X[\fB-p\fR]
- X[\fB-n\fR]
- X[\fB-f filename\fR]
- X[\fB-h\fR]
- X.br
- X.B readmsg
- X[\fB-p\fR]
- X[\fB-n\fR]
- X[\fB-f filename\fR]
- X[\fB-h\fR]
- Xnumber [number ...]
- X.br
- X.B readmsg
- X[\fB-p\fR]
- X[\fB-n\fR]
- X[\fB-f filename\fR]
- X[\fB-h\fR]
- Xpattern
- X.br
- X.SH DESCRIPTION
- X.I Readmsg
- Xis a program that gives the \fIelm\fR user the functionality of
- Xthe mailx "~r" command from the editor of their choice. There
- Xare three different ways of using the program;
- X.P
- XFirst off, if you're actually creating a reply to a message
- Xfrom within the \fIelm\fR system then \fIreadmsg\fR without any
- Xarguments will include a summary of the headers and the body
- Xof the message being replied
- Xto. If you aren't currently editing a message the program will
- Xreturn an error.
- X.P
- XSecondly, if you want to include certain messages, you can
- Xspecify them by listing their ordinal locations in the
- Xmail file (that is, their "message numbers")
- Xup to 25 at a time. The \fImeta-\fRnumber '$' is understood to mean
- Xthe last message in the mailfile. Similarly, '*' is understood to
- Xrepresent every message in the file (that is, 1-$)
- X.P
- XFinally, you can also specify a pattern that occurs in one of
- Xthe messages as a way of including it. This pattern can be
- Xtyped in directly (no quotes) if the words are separated by a
- Xsingle space in the actual message. The pattern matching is case
- Xsensitive, so "Hello" and "hello" are NOT the same thing!!
- X.sp
- X.P
- XThe \fB-f\fR flag indicates that you'd rather use the file specified
- Xfor the operations specified rather than the default mailbox.
- X.P
- XThe \fB-h\fR flag instructs the program to include the entire header
- Xof the matched message or messages when displaying their
- Xtext. (default is to display the From: Date: and Subject: lines
- Xonly)
- X.P
- XThe \fB-n\fR flag instructs the program to exclude \fIall\fR
- Xheaders. This is used mostly for extracting files mailed and
- Xsuch.
- X.P
- XFinally, the \fB-p\fR flag indicates that the program should
- Xput form-feeds (control-L) between message headers.
- X.sp
- X.SH "EXAMPLES"
- XFirst off, to use this from within \fBvi\fR to include the text of the
- Xcurrent message at the end of the current message, you could
- Xuse the command;
- X.nf
- X
- X !!readmsg
- X
- X.fi
- X(as you hit the 'G' the editor will put you at the bottom of the screen
- Xwith the '!' prompt).
- X.sp 2
- XLet's look at something more interesting, however;
- X.sp
- XSuppose you have the mailfile;
- X.nf
- X
- X From joe Jun 3 1986 4:45:30 MST
- X Subject: hello
- X
- X Hey Guy! Wanta go out and have a milk this evening?
- X
- X Joe
- X
- X From john Jun 3 1986 4:48:20 MST
- X Subject: Dinner at Eight
- X From: John Dinley <xyz!john>
- X
- X Remember you should show up about eight, okay?
- X
- X - John D -
- X
- X From xxzyz!cron Jun 3 1986 5:02:43 MST
- X
- X Cannot connect to server: blob
- X Job 43243 deleted from queue.
- X
- X.fi
- XThe following commands will result in;
- X.nf
- X
- X $ readmsg 2
- X [ display the second message, from John ]
- X
- X $ readmsg
- X [ an error, unless we're calling from \fIelm\fR ]
- X
- X $ readmsg BLOB
- X [ no match - case sensitive! ]
- X
- X $ readmsg -h connect to server
- X [ displays third message, including headers ]
- X
- X.fi
- X.SH FILES
- X/usr/mail/<username> The incoming mail
- X.br
- X$home/.readmsg The temp file from \fIelm\fR
- X.SH AUTHOR
- XDave Taylor, Hewlett-Packard Laboratories
- X.SH SEE\ ALSO
- Xnewmail(1L), elm(1L)
- X.SH BUGS
- XThe '*' metacharacter doesn't always work as expected!
- X.br
- XPerhaps the pattern matching should be case insensitive?
- X.SH BUG REPORTS TO
- XSyd Weinstein elm@dsinc.UUCP (dsinc!elm)
- X.SH COPYRIGHTS
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1986, 1987 by Dave Taylor
- X.br
- X.ps 18
- X\fB\(co\fR\s12 Copyright 1988, 1989 by The USENET Community Trust
- SHAR_EOF
- chmod 0444 doc/readmsg.1 || echo "restore of doc/readmsg.1 fails"
- echo "x - extracting doc/tmac.n (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/tmac.n &&
- X\" @(#)$Id: tmac.n,v 2.5 89/03/20 20:17:04 syd Exp $
- X.\" The News macro package
- X.\"
- X.\" This is the macro package that is used to format news documents. It
- X.\" was written because many sites do not have one of the -mm or -ms pack-
- X.\" ages that the documents use. This is NOT compatible with EITHER, but
- X.\" (I hope) will become the standard for all news documents (man pages
- X.\" excepted, since everyone seems to have -man.)
- X.\"
- X.\" This package was written using only the "NROFF/TROFF Users' Guide",
- X.\" and therefore if you can run NROFF/TROFF, you can legitimately use
- X.\" this package. However, because NROFF/TROFF are proprietary programs,
- X.\" I cannot place this package in the public domain. This should not
- X.\" matter, because if you legitimately have NROFF/TROFF, you have the
- X.\" documentation; if not, you can't run off the documentation anyway.
- X.\"
- X.\" This package may be circulated freely with the news documentation; it
- X.\" may not be sold, but is to be distributed with the unformatted news
- X.\" documents. However, the name of the author and the place at which it
- X.\" was written (in the author's own time, of course) are not to be
- X.\" removed from the package regardless of how it is modified or altered.
- X.\" Further, please do not distribute this package if you make any changes
- X.\" because I don't want to get bug reports of macros I haven't written;
- X.\" if you have a goodie you want me to add, send it to me and we'll talk.
- X.\" (I really do like feedback!) I'd really appreciate your cooperation.
- X.\"
- X.\" Author: Matt Bishop
- X.\" Research Institute for Advanced Computer Science
- X.\" Mail Stop 230-5
- X.\" NASA Ames Research Center
- X.\" Moffett Field, CA 94035
- X.\"
- X.\" version 1.0 September 28, 1985 mab@riacs.arpa
- X.\" initial version
- X.\" version 1.1 October 25, 1985 mab@riacs.arpa
- X.\" fixed an incredibly obscure footnote bug (that occurred twice in
- X.\" the news documentation!) which put footnoted words on one page
- X.\" and the footnote on the next if the word was in the next-to-last
- X.\" or last line; commented it, and generally cleaned up
- X.\" Version 1.2 October 27, 1985 mab@riacs.arpa
- X.\" Added a few more comments and a check to keep footnotes lined up
- X.\" with the bottom margin.
- X.\" Version 1.3 February 12, 1986 mab@riacs.arpa
- X.\" Added an error check to catch unmatched ef's and ed's
- X.\" Version 1.4 December 29, 1986 mab@riacs.edu
- X.\" Changed footnote for ux, pd, and vx macros and added a string
- X.\" for rg ("Registered Trademark")
- X.\" Version 1.5 January 2, 1989 Matt.Bishop@dartmouth.edu
- X.\" Minor modifications for nroff compatibility
- X.\" Version 1.6 March 15, 1989 Matt.Bishop@dartmouth.edu
- X.\" ..!bear.dartmouth.edu!bishop
- X.\" Fixed a bug in footnote handling (again, sigh ...) This one
- X.\" occurred when the the "fo" trap position was reset just beneath
- X.\" the current line; the footnote overflow trap would kick in and
- X.\" never be closed.
- X.\"
- X.\"
- X.\" **********
- X.\" these preserve and restore various things
- X.\" they are used to shorten other macros
- X.de yf \" restore fonts
- X.ft \\n(f2 \" previous font
- X.ft \\n(f1 \" current font
- X..
- X.de yi \" restore indents
- X'in \\n(i2u \" previous indent
- X'in \\n(i1u \" current indent
- X..
- X.de ys \" restore point sizes
- X.ps \\n(s2 \" previous point size
- X.ps \\n(s1 \" current point size
- X..
- X.de yv \" restore vertical spacings
- X.vs \\n(v2u \" previous vertical spacing
- X.vs \\n(v1u \" current vertical spacing
- X..
- X.de ya \" restore everything
- X.yf \" restore fonts
- X.yi \" restore indents
- X.ys \" restore point sizes
- X.yv \" restore vertical spacing
- X..
- X.de zf \" preserve fonts
- X.nr f1 \\n(.f \" current font
- X.ft \" switch to previous font
- X.nr f2 \\n(.f \" previous font
- X.ft \" back to current font
- X..
- X.de zi \" preserve indents
- X.nr i1 \\n(.iu \" current indent
- X'in \" switch to previous indent
- X.nr i2 \\n(.iu \" previous indent
- X'in \" back to current indent
- X..
- X.de zs \" preserve point sizes
- X.nr s1 \\n(.su \" current point size
- X.ps \" switch to previous point size
- X.nr s2 \\n(.su \" previous point size
- X.ps \" back to current point size
- X..
- X.de zv \" preserve vertical spacings
- X.nr v1 \\n(.vu \" current vertical spacing
- X.vs \" switch to previous vertical spacing
- X.nr v2 \\n(.vu \" previous vertical spacing
- X.vs \" back to current vertical spacing
- X..
- X.de za \" save everything
- X.zf \" save fonts
- X.zi \" save indents
- X.zs \" save point sizes
- X.zv \" save vertical spacings
- X..
- X.\" **********
- X.\" these actually print the header and footer titles
- X.\" they are defined separately from the "hd" and "fo" macros
- X.\" to make user redefinition easy
- X.de pt \" print header title
- X. \" omit header on first page
- X.if \\n%>1 \{\
- X' sp |\\$1u \" move to proper position
- X. ft 1 \" change to default font
- X. ps \\n(ps \" change to default point size
- X. vs \\n(vs \" change to default spacing
- X. tl '\\*(h0'\\*(h1'\\*(h2' \" center title
- X. vs \" restore current vertical spacing
- X. ps \" restore current point size
- X. ft \" restore current font
- X.\}
- X..
- X.de pf \" print footer title
- X.ft 1 \" change to default font
- X.ps \\n(ps \" change to default point size
- X.vs \\n(vs \" change to default spacing
- X.ie \\n%=1 .tl '\\*(h0'\\*(h1'\\*(h2' \" on first page, print the header here
- X.el .tl '\\*(f0'\\*(f1'\\*(f2' \" on other pages, print the footer
- X.vs \" restore current vertical spacing
- X.ps \" restore current point size
- X.ft \" restore current font
- X..
- X.\" **********
- X.\" these are the top of page (header) and bottom of page (footer) macros
- X.\" they don't actually print anything, just call the right macros
- X.de hd \" header -- do top of page processing
- X.if t .if \\n(cm .tl '\(rn''' \" drop cut mark if needed
- X.pt \\n(ttu \" print header
- X.nr fc 0 1 \" init footnote count
- X.nr fs \\n(.pu-\\n(bmu-1u \" if any footnotes, start print here
- X.nr fp 0-\\n(bmu \" reset current footer place
- X.ch fo -\\n(bmu \" reset footer trap
- X.if \\n(dn .fz \" put leftover footnotes st bottom
- X.ya \" restore font, etc.
- X'sp |\\n(tmu \" move to top of body
- X.ns \" don't allow any more space
- X..
- X.de fo \" footer -- do bottom of page processing
- X.za \" save font, etc.
- X.rs \" you want motions here
- X.nr dn 0 \" clobber diversion size register
- X.if \\n(fc .fd \" now print the footnotes, if any
- X'bp \" force out page
- X..
- X.\" **********
- X.\" these are the footnote macros
- X.\" here's an overview:
- X.\" Footnotes are processed in environment #1, which is initialized
- X.\" at the bottom of this package. When "fn" is called, nroff/troff
- X.\" switches to this environment. The body of the footnote is saved
- X.\" in the diversion "tf" (for "temporary footnote"), so you will
- X.\" NEVER spring a trap during the first reading of a footnote. When
- X.\" "ef" ("end footnote") is called, the diversion is closed. If
- X.\" this is the first footnote on the page (ie, the number register
- X.\" "fc" is 1), and the footnote height (plus the height of 1 line)
- X.\" crosses the bottom margin, you get the footnoted word on one
- X.\" page and the footnote on the other. In this case we just call
- X.\" "fo" manually (taking case it cannot be re-invoked on the same
- X.\" page!) If this situation does not occur, we just adjust the
- X.\" footer trap's position upwards (we'll get to how far in a min-
- X.\" ute); if this puts the trap above the current line, we reposi-
- X.\" tion the trap just beneath the current line to be sure of trig-
- X.\" triggering it once the current line is forced out.
- X.\" To reposition the footer trap, we proceed as follows. Because
- X.\" the trap may be sprung in the middle of a line, it is possible
- X.\" that the footnote will not fit on the page (regardless of where
- X.\" on the page the footnoted word occurs -- really!) if we move the
- X.\" trap up by the size of the footnote diversion "tf". So, we
- X.\" fudge things a little bit -- for the first footnote on each page
- X.\" we move the footer trap up 1 extra line ("line" being 1v in env-
- X.\" ironment #0). Unless the point size and vertical spacing are
- X.\" increased between the first footnote and the footer trap's being
- X.\" sprung, this will keep the footnotes on the same page as the
- X.\" footnoted word. But as there may be now as much as 1v of space
- X.\" between the footnote and the bottom margin, which looks HIDEOUS,
- X.\" we use the number register "fs" to mark where the footer trap
- X.\" would REALLY go, and just space to it when it comes time to put
- X.\" out the footnotes.
- X.de fd \" dump footnotes
- X.nr gs 1v \" get a measure of 1 line in env #0
- X.ev 1 \" switch to footnote environment
- X.nr gs +2v \" min of 2 lines of footnotes
- X. \" if the number register ns > 0,
- X. \" the last text line may contain a
- X. \" footnote that is too big to fit;
- X. \" this checks for such a note and
- X. \" if so, forces the footnote into
- X. \" the "fy" diversion that carries
- X. \" it onto the next text page
- X.ie (\\n(nsu>0)&(\\n(gsu>=\\n(.tu) 'sp \\n(gsu \" be sure you can get it down
- X.el .if \\n(fsu>\\n(nlu 'sp \\n(fsu-\\n(nlu \" move to footnote start position
- X'nf \" don't reprocess footnotes
- X'in 0 \" don't indent them any more either
- X.tf \" drop text of footnotes
- X.rm tf
- X.if '\\n(.z'fy' .di \" end overflow diversion, if any
- X.nr fc 0 \" re-init footnote count
- X.ev \" return to usual environment
- X..
- X.de fn \" start footnote
- X. \" look for nested footnotes -- ILLEGAL
- X.ie \\n(if>0 .er "footnote within footnote"
- X.el .da tf \" append footnote to footnote diversion
- X.nr if +1 \" increment level of footnoting
- X.nr fc +1 \" one more footnote on this page
- X.if \\n(fc=1 .nr fp -1v \" The reason for this "fudge factor"
- X. \" is that there is no way to force
- X. \" NROFF/TROFF to invoke a macro at
- X. \" the end of each line. At times,
- X. \" the trap boundary will not match up
- X. \" with the bottom of a line, so the
- X. \" "fo" trap which is set at 2320 may
- X. \" not be triggered until 2340 -- and
- X. \" then the footnote won't fit. This
- X. \" gives some slack so the footnote is
- X. \" more likely to fit. *sigh*
- X.ev 1 \" enter footnote environment
- X.if \\n(fc=1 .fs \" drop separator if first footnote
- X.br \" flush out any previous line in footnote
- X.fi \" process footnote in fill mode
- X..
- X.de ef \" end footnote
- X.br \" flush out the line in footnote
- X.ie \\n(if<=0 .er "end footnote has no corresponding begin footnote"
- X.el \{\
- X. nr if -1 \" decrement level of footnoting
- X. nr fg 2v \" remember this for repositioning fo
- X. ev \" back to usual environment
- X. if \\n(if=0 \{\
- X. di \" end of footnote proper
- X. nr fp -\\n(dnu \" "fo" will be moved at least up this far
- X. nr fs -\\n(dnu \" increase size of footnote
- X. ch fo \\n(fpu \" reposition "fo" trap (first guess)
- X. \" the first part of the "ie" clause
- X. \" is taken in the special case
- X. \" described above
- X. ie (\\n(fc=1)&((\\n(nlu+1v+\\n(fgu)>=(\\n(.pu-\\n(bmu)) \{\
- X. nr ns \\n(dnu \" suppress footnote separator
- X. \" since this footnote contains it
- X. \" keep "fo" from being invoked twice
- X. ch fo \\n(.pu+1i
- X. fo \" force the page out AT ONCE
- X. nr ns 0 \" re-enable footnote separator
- X. \}
- X. \" footnote won't fit completely
- X. \" invoke the footer trap but
- X. \" don't worry about the footnote
- X. \" separator (it's already there)
- X. el .if (\\n(nlu+1v)>=(\\n(.pu+\\n(fpu) \{\
- X. \" as before we must reposition the
- X. \" "fo" trap to prevent "fo" from
- X. \" being invoked twice
- X. ch fo \\n(.pu+1i
- X. fo \" force the page out AT ONCE
- X. \}
- X. \}
- X.\}
- X..
- X.de fs \" drop footnote separator
- X. \" only if not already dropped
- X.if \\n(ns=0 \l'1i'
- X.nr ns 0 \" in case footnotes are over 1 page long
- X..
- X.de fx \" process footnote overflow
- X.if \\n(fc .di fy \" stuff them in the right place
- X..
- X.de fz \" deposit footnote overflow
- X.fn \" treat it as a footnote
- X.nf \" it's already been processed
- X.in 0 \" and indented
- X.fy \" "fx" put it here
- X.ef \" end the footnote
- X..
- X.\" **********
- X.\" the ones after here are user-invoked (like "fn" and "ef" above)
- X.\" title, author, etc.
- X.de mt \" main title
- X\&
- X.sp |\\n(mtu \" space
- X.ft 3 \" in bold
- X.ps \\n(ps+2p \" large point size and
- X.vs \\n(vs+2p \" vertical spacing
- X.ce 1000 \" center the title
- X.nr t2 1 \" space it
- X..
- X.de au \" author
- X.nr t2 0 \" spacing here
- X.sp 2v \" space
- X.ft 2 \" in italics
- X.ps \\n(ps \" usual point size and
- X.vs \\n(vs \" vertical spacing
- X.ce 1000 \" center the name(s)
- X..
- X.de ai \" author's institution
- X.if \\n(t2 .sp 2v \" space after a title
- X.nr t2 0 \" institution
- X.ft 2 \" in italics
- X.ps \\n(ps \" usual point size and
- X.vs \\n(vs \" vertical spacing
- X.ce 1000 \" center the name(s)
- X..
- X.de bt \" begin text macro
- X.nr t2 0 \" hold it here
- X.nr it +1 \" mark as called
- X.ce 0 \" end any centering
- X.sn 3v \" a little bit of space
- X..
- X.\" paragraph
- X.de si \" start indented section
- X.nr lo \\n(lm \" remember the current level
- X.nr lm +1 \" go to the next level
- X.ie '\\$1'' .nr l\\n(lm \\n(l\\n(lo+5n \" if no arg, indent 5n
- X.el .nr l\\n(lm \\$1n \" otherwise, indent that much
- X..
- X.de ei \" end indent
- X.nr lm -1 \" down one level
- X.if \\n(lm<0 .nr lm 0 \" make sure you don't go too far
- X..
- X.de pg \" plain old paragraph
- X.if !\\n(it .bt \" end the title and such
- X.sn \\n(pdu \" inter-paragraph spacing
- X.ft 1 \" reset a few things (paranoia)
- X. \" these ONLY if not in footnote
- X.ie \\n(if=0 \{\
- X. ps \\n(ps \" reset point size
- X. vs \\n(vs \" reset vertical spacing
- X. ne 1v+\\n(.Vu \" slightly more than 1 line
- X.\}
- X.el \{\
- X. ps \\n(ps-2p \" reset point size
- X. vs \\n(vs-2p \" reset vertical spacing
- X.\}
- X.in \\n(l\\n(lmu \" stop any indenting
- X.ce 0 \" stop any centering
- X.if !'\\$1'L' .if !'\\$1'l' .ti +\\n(piu \" indent the sucker
- X..
- X.de lp \" labelled paragraph
- X.pg l \" reset paragraph
- X.if \\n(.$>1 .nr li \\$2n \" if indent given use it
- X.in +\\n(liu \" indent for paragraph
- X.ti -\\n(liu \" force first line NOT to indent
- X.ta +\\n(liu \" for the label
- X\&\\$1\t\c
- X.if \\w'\\$1'u>=(\\n(l\\n(lmu+\\n(liu) .br \" don't overwrite
- X..
- X.\" The following two macros (hu & hn) have been modified for ELM usage.
- X.\" If the macros have text as part of the macro call, the text will be
- X.\" increased in size by two points. After printing the text, the font
- X.\" will be returned to normal, otherwise the font will be left bold.
- X.\"
- X.\" section
- X.de hu \" header, unnumbered
- X. \" format: .hu [text]
- X.if !\\n(it .bt \" end the title and such
- X.br \" force out previous line
- X.b
- X.ie \\n(hp .ps \\n(hp
- X.el .ps \\n(ps
- X.ie \\n(hv .vs \\n(hv
- X.el .vs \\n(vs
- X.in \\n(l\\n(lmu \" stop any indenting
- X.sn \\n(hsu \" inter-section spacing
- X.ne 3v+\\n(.Vu \" slightly more than 3 lines
- X.fi \" process the text, too
- X.if \\n(.$>=1 \{\
- X.ps +2
- X\\$1
- X.\}
- X.if \\n(.$>=2 \\$2
- X.if \\n(.$>=3 \\$3
- X.if \\n(.$>=4 \\$4
- X.if \\n(.$>=5 \\$5
- X.if \\n(.$>=6 \\$6
- X.if \\n(.$>=7 \\$7
- X.if \\n(.$>=8 \\$8
- X.if \\n(.$=9 \\$9
- X.if \\n(.$>=1 \{\
- X.ps -2
- X.br
- X.ft 1
- X.\}
- X..
- X.de hn \" header, numbered
- X. \" format: .hn [level] [text]
- X.if !\\n(it .bt \" end the title and such
- X.br \" force out previous line
- X.b
- X.ie \\n(hp .ps \\n(hp
- X.el .ps \\n(ps
- X.ie \\n(hv .vs \\n(hv
- X.el .vs \\n(vs
- X.in \\n(l\\n(lmu \" stop any indenting
- X.sn \\n(hsu \" inter-section spacing
- X.ne 3v+\\n(.Vu \" slightly more than 3 lines
- X.fi \" process the text, too
- X.ie !'\\$1'' .nr hn \\$1
- X.el .nr hn 1
- X.ie \\n(hn>0 .nr hn -1
- X.el .nr hn 0
- X.ie \\n(hn=0 \{\
- X. nr h0 +1 \" add 1 to main section header
- X. nr h1 0 \" zap remaining section numbers
- X. nr h2 0 \" zap remaining section numbers
- X. nr h3 0 \" zap remaining section numbers
- X.ie \\n(.$>=2 \{\
- X.ps +2
- X\\n(h0.
- X.ps -2
- X.\}
- X.el \\n(h0.
- X.\}
- X.el .ie \\n(hn=1 \{\
- X. nr h1 +1 \" add 1 to the section header
- X. nr h2 0 \" zap remaining section numbers
- X. nr h3 0 \" zap remaining section numbers
- X.ie \\n(.$>=2 \{\
- X.ps +2
- X\\n(h0.\\n(h1.
- X.ps -2
- X.\}
- X.el \\n(h0.\\n(h1.
- X.\}
- X.el .ie \\n(hn=2 \{\
- X. nr h2 +1 \" add 1 to the section header
- X. nr h3 0 \" zap remaining section numbers
- X.ie \\n(.$>=2 \{\
- X.ps +2
- X\\n(h0.\\n(h1.\\n(h2.
- X.ps -2
- X.\}
- X.el \\n(h0.\\n(h1.\\n(h2.
- X.\}
- X.el \{\
- X. nr h3 +1 \" add 1 to the section number
- X.ie \\n(.$>=2 \{\
- X.ps +2
- X\\n(h0.\\n(h1.\\n(h2.\\n(h3.
- X.ps -2
- X.\}
- X.el \\n(h0.\\n(h1.\\n(h2.\\n(h3.
- X.\}
- X.if \\n(.$>=2 \{\
- X.ps +2
- X\\$2
- X.\}
- X.if \\n(.$>=3 \\$3
- X.if \\n(.$>=4 \\$4
- X.if \\n(.$>=5 \\$5
- X.if \\n(.$>=6 \\$6
- X.if \\n(.$>=7 \\$7
- X.if \\n(.$>=8 \\$8
- X.if \\n(.$>=9 \\$9
- X.if \\n(.$>=2 \{\
- X.br
- X.ft 1
- X.ps -2
- X.\}
- X..
- X.\" displays (no floats, thank God!)
- X.de sd \" start display
- X. \" look for nested displays -- ILLEGAL
- X.ie \\n(id>0 .er "display within display"
- X.el \{\
- X. ie '\\$1'c' .nr sf 1 \" center the sucker
- X. el .nr sf 0 \" don't center it
- X.\}
- X.sn \\n(pdu \" a little bit of space
- X.ev 2 \" switch to display environment
- X.nf \" what you type is what you get
- X.if \\n(id=0 .di dd \" start saving text
- X.rs \" don't eat leading space
- X.nr id +1 \" increment level of display
- X..
- X.de ed \" end display
- X.br \" flush line
- X.ie \\n(id<=0 .er "end display has no corresponding begin display"
- X.el \{\
- X. nr id -1 \" decrement level of display
- X. if \\n(id=0 \{\
- X. di \" end diversion
- X. fi \" resume filling
- X. in -\\n(piu \" dedent
- X. ev \" pop environment
- X. ne \\n(dnu \" be sure you have room
- X. nf \" don't reprocess display
- X. rs \" don't eat leading space
- X. zi \" save indents
- X. ie \\n(sf .in (\\n(llu-\\n(dlu)/2u \" center on the line length
- X. el .in +\\n(piu \" indent the sucker
- X. dd \" drop display
- X. yi \" restore indents
- X. \}
- X.\}
- X.fi \" resume filling
- X.sn \\n(pdu \" a little bit of space
- X..
- X.\" **********
- X.\" fonts -- if argument(s), apply only to first
- X.de b \" bold (font 3)
- X.ie \\n(.$>0 \\&\\$3\\f3\\$1\\fP\\$2
- X.el .ft 3
- X..
- X.de i \" italics (font 2)
- X.ie \\n(.$>0 \\&\\$3\\f2\\$1\\fP\\$2
- X.el .ft 2
- X..
- X.de r \" roman (font 1)
- X.ft 1 \" just restore it
- X..
- X.de bi \" bold italics (embolden font 2)
- X\\&\\$3\c
- X\\kb\\f2\\$1\\fP\\h'|\\nbu+2u'\\f2\\$1\\fP\\$2
- X..
- X.\" **********
- X.\" point sizes -- if argument(s), apply only to first
- X.de sm \" reduce point size by 2
- X.ie \\n(.$>0 \\&\\$3\\s-2\\$1\\s0\\$2
- X.el .ps -2
- X..
- X.de is \" increase point size by 2
- X.ie \\n(.$>0 \\&\\$3\\s+2\\$1\\s0\\$2
- X.el .ps +2
- X..
- X.de nl \" return to normal size
- X.ps \\n(ps \" just reset the point size
- X..
- X.\" **********
- X.\" handy force space/inhibit more space macros
- X.de sn \" space, then turn on nospace mode
- X.sp \\$1 \" space
- X.ns \" ignore any more space requests
- X..
- X.de sr \" force out space
- X.rs \" turn on spacing mode
- X.sp \\$1 \" space
- X..
- X.\" **********
- X.\" end of text and error macros
- X.de et \" end of text macro
- X. \" this: (1) flushes rest of line
- X. \" (2) trips the footer, taking
- X. \" care of footnotes
- X.sp \\n(.pu
- X. \" check for open displays or footnotes
- X.if \\n(id>0 .er "unfinished display"
- X.if \\n(if>0 .er "unfinished footnote"
- X. \" this one means an -mn bug (*sigh*)
- X.if !'\\n(.z'' .er "diversion \\n(.z not closed"
- X..
- X.de er \" print error message
- X. \" flag it as an error
- X.ds ws "** ERROR **
- X. \" if you have it, give the file name
- X.if !'\\*(.f'' .as ws " file \\*(.f,
- X. \" put out the line number
- X.as ws " line \\n(.c
- X. \" and finally the error message
- X.tm \\*(ws: \\$1
- X..
- X.\" **********
- X.\" macros in this section are VERY specific to the news documentation
- X.de pa \" protocol appellation (darn names!)
- X\\&\\$3\\f2\\$1\\fP\\$2
- X..
- X.de ng \" news group name
- X\\&\\$3\\f3\\$1\\fP\\$2
- X..
- X.de cn \" computer name
- X\\&\\$3\\f2\\$1\\fP\\$2
- X..
- X.de hf \" header field
- X\\&\\$3\\*(lq\\$1\\*(rq\\$2
- X..
- X.de cf \" contents of field
- X\\&\\$3\\*(lq\\$1\\*(rq\\$2
- X..
- X.de qc \" quote control char (command)
- X\\&\\$3\\f3<\\s-2\\$1\\s0>\\fP\\$2
- X..
- X.de qp \" quote printing char (command)
- X\\&\\$3\\f3\\$1\\fP\\$2
- X..
- X.de op \" option
- X\\&\\$3\\f3\\$1\\fP\\$2
- X..
- X.\" **********
- X.\" trademarked names
- X.de pd \" print "PDP-11"
- X.ie \\n(p1 \\&\\$2\\s-1PDP\\s0-11\\$1
- X.el \{\
- X. nr p1 +1 \" mark footnote as dropped
- X\\&\\$2\\s-1PDP\\s0-11\\*(rg\\$1
- X. fn \" put out the footnote
- X\\&\\*(rgPDP-11 is a registered trademark of Digital Equipment Corporation.
- SHAR_EOF
- echo "End of part 7"
- echo "File doc/tmac.n is continued in part 8"
- echo "8" > s2_seq_.tmp
- exit 0
-
-